package com.mmall.service;

import com.mmall.common.ServerResponse;
import com.mmall.pojo.Category;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * 分类模块
 */
public interface ICategoryService {
    /**
     * 添加分类
     * @param categoryName 品类名
     * @param parentId
     * @return
     */
    ServerResponse addCategory(String categoryName,Integer parentId);

    /**
     * 更新分类 categoryName
     * @param categoryId 品类id
     * @param categoryName 品类名
     * @return
     */
    ServerResponse updateCategoryName(Integer categoryId, String categoryName);

    /**
     * 查询子节点的category信息,并且不递归,保持平级
     * @param categoryId
     * @return
     */
    ServerResponse<List<Category>> getChildrenParallelCategory(Integer categoryId);

    /**
     * 通过指定的categoryId本节点的id和子节点的id
     * @param categoryId
     * @return
     */
    ServerResponse<List<Integer>> selectCatgoryAndChildrenById(Integer categoryId);

    /**
     * 递归算法,获取指定节点和子节点的信息
     * @param categoryId
     * @return
     */
    Set<Category> findChildCategory(Set<Category> categorySet, Integer categoryId);
}
